#ifndef __MARSRENDERABLE_H__
#define __MARSRENDERABLE_H__

#include "MarsComponent.h"

namespace Graphics
{
class Mesh;
class Material;
} // end of namespace Graphics

namespace GObject
{

class Renderable : public Component
{
public:
										Renderable( Graphics::Mesh* pMesh, Graphics::Material* pMaterial );
	virtual								~Renderable();

	Graphics::Mesh*						GetMesh() const;
	Graphics::Material*					GetMaterial() const;

private:
	Graphics::Mesh*						m_pMesh;
	Graphics::Material*					m_pMaterial;
};

//////////////////////////////////////////////////////////////////////////
inline Renderable::Renderable( Graphics::Mesh* pMesh, Graphics::Material* pMaterial )
	: Component( Component::CT_Renderable )
	, m_pMesh( pMesh )
	, m_pMaterial( pMaterial )
{

}

inline Renderable::~Renderable()
{

}

inline Graphics::Mesh* Renderable::GetMesh() const
{
	return m_pMesh;
}

inline Graphics::Material* Renderable::GetMaterial() const
{
	return m_pMaterial;
}

} // end of namespace GObject

#endif // end of #ifndef __MARSRENDERABLE_H__